1. Field of the Invention
The invention relates generally to storage devices and systems using storage devices and, more specifically, relates to methods and structures for coordinating shared access to a SATA storage device by multiple host systems.
2. Discussion of Related Art
SCSI (small computer systems interface) and AT attachment (ATA—e.g., IDE and EIDE) are both popular protocols for coupling storage devices to host systems. Exemplary storage devices may include individual magnetic and optical disk drives, RAID or other logical storage volumes, tape drives, tape autochangers, tape libraries, etc. Host systems may be any device designed to couple to such a storage device including, for example, a personal computer, workstation, or server computing system, a storage host bus adapter within such a computing system, an embedded storage subsystem controller housed within a storage subsystem, etc.
Both the SCSI and ATA standards originated as parallel bus structures and associated command and status protocols. Over time, high speed serial communication media and protocols evolved to compete with the performance of even high speed parallel bus structures but at lower cost. Both SCSI and ATA command and status features have since been adapted for incorporation with such high speed serial communication media and protocols. For example, serial attached SCSI (SAS) protocols allow for exchange of SCSI command and status blocks over high speed serial communication media. In addition, a serial ATA (SATA) version of the ATA command and status protocol has been adapted for utilization over such SAS communication media and protocols. Such protocols are well known to those of ordinary skill in the art and specifications may be obtained at, for example, www.t10.org and www.serialata.org.
Utilizing SAS communication media and protocols to communicate between a host system and a storage device allows for multiple host systems to easily coordinate and share access to a common, shared storage device. The SCSI protocols inherently allow a host device (i.e., an initiator) to be temporarily disconnected from the storage device (i.e., a target) when the storage device is not prepared to complete a presently outstanding request. Following such a disconnection, another host system may utilize the SCSI communication medium to perform other operations on the same shared storage device or other storage devices on the same communication medium. By contrast, SATA protocols inherently prohibit such simple coordination and the sharing of a storage device. Rather, when a first host system initiates an exchange with a shared SATA storage device, that host system has effectively locked the communication path to that storage device until the desired exchange of information is completed. No other host system may utilize the communication bandwidth to the SATA storage device until the first host system has completed its requested exchange and relinquished its temporary exclusive control of communications with the shared SATA storage device.
SATA protocols include specifications of a device referred to as a “port selector”. See, e.g., http://www.serialata.org/docs/ps—100_Gold.pdf. A port selector is a device that simply multiplexes multiple host systems utilizing SATA protocols for selective coupling to an SATA storage device. SATA protocol exchanges inherently, in essence, require locking of access to the storage device until a complete sequence of command and data exchanges are completed. A port selector is therefore a simple multiplexer that fails to improve upon utilization of available bandwidth. Further, the selection feature of such a port selector is under control of one or more of the host systems coupled thereto. The host systems must therefore take responsibility for managing the port selection features of the SATA port selector. Thus, coordinating shared access to the SATA storage device is not transparent with respect to all of the host systems.
Some prior techniques allow multiple active SATA hosts to share access to a common SATA storage device. Multiple active hosts may allow for redundant controllers/hosts to access a common shared SATA storage device to thereby permit rapid switchover between redundant storage controllers to access a common SATA storage device. However, as noted above, such prior solutions provide no means or structure to allow for improved utilization of available bandwidth by coordinating use of otherwise idle time in the shared access to the SATA storage device.
It is evident from the above discussion that a need exists for an improved method, circuit, system and structure to permit better utilization of available bandwidth in sharing access to a common SATA storage device while doing so in a manner transparent to all attached host systems.